
// import oimo.m.Vec3;
// import oimo.m.M;

import { Vec3 } from "../../../../common/Vec3";

/**
 * numberernal class.
 */
export class ContactSolverMassDataRow {
	// normal impulse -> linear/angular velocity change
	invMLinN1: Vec3;
	invMLinN2: Vec3;
	invMAngN1: Vec3;
	invMAngN2: Vec3;

	// tangent impulse -> linear/angular velocity change
	invMLinT1: Vec3;
	invMLinT2: Vec3;
	invMAngT1: Vec3;
	invMAngT2: Vec3;

	// binormal impulse -> linear/angular velocity change
	invMLinB1: Vec3;
	invMLinB2: Vec3;
	invMAngB1: Vec3;
	invMAngB2: Vec3;

	// normal mass
	massN: number;

	// tangent/binormal mass matrix for cone friction
	massTB00: number;
	massTB01: number;
	massTB10: number;
	massTB11: number;

	constructor() {
		this.invMLinN1 = new Vec3();
		this.invMLinN2 = new Vec3();
		this.invMAngN1 = new Vec3();
		this.invMAngN2 = new Vec3();

		this.invMLinT1 = new Vec3();
		this.invMLinT2 = new Vec3();
		this.invMAngT1 = new Vec3();
		this.invMAngT2 = new Vec3();

		this.invMLinB1 = new Vec3();
		this.invMLinB2 = new Vec3();
		this.invMAngB1 = new Vec3();
		this.invMAngB2 = new Vec3();

		this.massN = 0;

		this.massTB00 = 0;
		this.massTB01 = 0;
		this.massTB10 = 0;
		this.massTB11 = 0;
	}
}
